﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.DirectX;
using System.Xml;
using Microsoft.DirectX.Direct3D;

namespace BurningSphere.Simulator.Controls
{
	/// <summary>
	/// Base class for laser control - will need expanding to
	/// support things like laser on/off
	/// </summary>
	public class LaserControl
	{
		/// <summary>
		/// Return true to allow the update to run
		/// </summary>
		public virtual bool LaserStatus
		{
			get
			{
				return true;
			}
		}

		/// <summary>
		/// Used to direct the laser
		/// </summary>
		public virtual Matrix LaserMatrix
		{
			get
			{
				return Matrix.Identity;
			}
		}

		/// <summary>
		/// Update method
		/// </summary>
		/// <param name="matrix"></param>
		public virtual void Update(Matrix matrix)
		{
		}

		/// <summary>
		/// For iterating through whatever animation or
		/// sequence the subclass presents
		/// </summary>
		/// <returns></returns>
		public virtual bool MoveNext()
		{
			return true;
		}

		/// <summary>
		/// Called immediately after the control has been
		/// loaded and the properties set.
		/// </summary>
		public virtual void OnLoad()
		{
		}
	}
}
